home *** CD-ROM | disk | FTP | other *** search
Wrap
XXXXmmmmMMMMeeeennnnuuuuSSSShhhheeeellllllll((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmMMMMeeeennnnuuuuSSSShhhheeeellllllll((((3333XXXX)))) NNNNAAAAMMMMEEEE XXXXmmmmMMMMeeeennnnuuuuSSSShhhheeeellllllll - The MenuShell widget class SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS #include <Xm/MenuShell.h> VVVVEEEERRRRSSSSIIIIOOOONNNN This page documents Motif 2.1. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN The MenuShell widget is a custom OverrideShell widget. An OverrideShell widget bypasses mmmmwwwwmmmm when displaying itself. It is designed specifically to contain Popup or Pulldown menu panes. Most application writers never encounter this widget if they use the menu-system convenience functions, XXXXmmmmCCCCrrrreeeeaaaatttteeeePPPPooooppppuuuuppppMMMMeeeennnnuuuu or XXXXmmmmCCCCrrrreeeeaaaatttteeeePPPPuuuullllllllddddoooowwwwnnnn MMMMeeeennnnuuuu, to create a Popup or Pulldown menu pane. The convenience functions automatically create a MenuShell widget as the parent of the menu pane. However, if the convenience functions are not used, the application programmer must create the required MenuShell. In this case, it is important to note that the parent of the MenuShell depends on the type of menu system being built. +o If the MenuShell is for the top-level Popup menu pane, the MenuShell's parent must be the widget from which the Popup menu pane is popped up. +o If the MenuShell is for a menu pane that is pulled down from a Popup or another Pulldown menu pane, the MenuShell's parent must be the Popup or Pulldown menu pane. +o If the MenuShell is for a menu pane that is pulled down from a MenuBar, the MenuShell's parent must be the MenuBar. +o If the MenuShell is for a Pulldown menu pane in an OptionMenu, the MenuShell's parent must be the OptionMenu's parent. Setting XXXXmmmmNNNNhhhheeeeiiiigggghhhhtttt, XXXXmmmmNNNNwwwwiiiiddddtttthhhh, or XXXXmmmmNNNNbbbboooorrrrddddeeeerrrrWWWWiiiiddddtttthhhh for either a MenuShell or its child sets that resource to the same value in both the parent and the child. An application should always specify these resources for the child, not the parent. For the managed child of a MenuShell, regardless of the value of the shell's XXXXmmmmNNNNaaaalllllllloooowwwwSSSShhhheeeellllllllRRRReeeessssiiiizzzzeeee, setting XXXXmmmmNNNNxxxx or XXXXmmmmNNNNyyyysets the corresponding resource of the parent but does not change the child's position relative to the parent. Page 1 (printed 4/6/01) XXXXmmmmMMMMeeeennnnuuuuSSSShhhheeeellllllll((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmMMMMeeeennnnuuuuSSSShhhheeeellllllll((((3333XXXX)))) XXXXttttGGGGeeeettttVVVVaaaalllluuuueeeessss for the child's XXXXmmmmNNNNxxxx or XXXXmmmmNNNNyyyy yields the value of the corresponding resource in the parent. The x and y- coordinates of the child's upper left outside corner relative to the parent's upper left inside corner are both 0 (zero) minus the value of XXXXmmmmNNNNbbbboooorrrrddddeeeerrrrWWWWiiiiddddtttthhhh. MenuShell uses the _X_m_Q_T_m_e_n_u_S_y_s_t_e_m trait and holds the _X_m_Q_T_s_p_e_c_i_f_y_R_e_n_d_e_r_T_a_b_l_e trait. CCCCllllaaaasssssssseeeessss MenuShell inherits behavior, resources, and traits from CCCCoooorrrreeee, CCCCoooommmmppppoooossssiiiitttteeee, SSSShhhheeeellllllll, and OOOOvvvveeeerrrrrrrriiiiddddeeeeSSSShhhheeeellllllll. The class pointer is _x_m_M_e_n_u_S_h_e_l_l_W_i_d_g_e_t_C_l_a_s_s. The class name is XXXXmmmmMMMMeeeennnnuuuuSSSShhhheeeellllllll. NNNNeeeewwww RRRReeeessssoooouuuurrrrcccceeeessss MenuShell overrides the XXXXmmmmNNNNaaaalllllllloooowwwwSSSShhhheeeellllllllRRRReeeessssiiiizzzzeeee resource in Shell. The following table defines a set of widget resources used by the programmer to specify data. The programmer can also set the resource values for the inherited classes to set attributes for this widget. To reference a resource by name or by class in a ....XXXXddddeeeeffffaaaauuuullllttttssss file, remove the XXXXmmmmNNNN or XXXXmmmmCCCC prefix and use the remaining letters. To specify one of the defined values for a resource in a ....XXXXddddeeeeffffaaaauuuullllttttssss file, remove the XXXXmmmm prefix and use the remaining letters (in either lowercase or uppercase, but include any underscores between words). The codes in the access column indicate if the given resource can be set at creation time (C), set by using XXXXttttSSSSeeeettttVVVVaaaalllluuuueeeessss (S), retrieved by using XXXXttttGGGGeeeettttVVVVaaaalllluuuueeeessss (G), or is not applicable (N/A). XXXXmmmmMMMMeeeennnnuuuuSSSShhhheeeellllllll RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt NNNNaaaammmmeeee CCCCllllaaaassssssss TTTTyyyyppppeeee DDDDeeeeffffaaaauuuulllltttt AAAAcccccccceeeessssssss XmNbuttonFontList XmCButtonFontList XmFontList dynamic CSG XmNbuttonRenderTable XmCButtonRenderTable XmRenderTable NULL CSG XmNdefaultFontList XmCDefaultFontList XmFontList dynamic CG XmNlabelFontList XmCLabelFontList XmFontList dynamic CSG XmNlabelRenderTable XmCLabelRenderTable XmRenderTable NULL CSG XmNlayoutDirection XmCLayoutDirection XmDirection XmLEFT_TO_RIGHT CG XXXXmmmmNNNNbbbbuuuuttttttttoooonnnnFFFFoooonnnnttttLLLLiiiisssstttt Specifies the font list used for button descendants. See the XXXXmmmmNNNNbbbbuuuuttttttttoooonnnnRRRReeeennnnddddeeeerrrrTTTTaaaabbbblllleeee resource. XXXXmmmmNNNNbbbbuuuuttttttttoooonnnnRRRReeeennnnddddeeeerrrrTTTTaaaabbbblllleeee Specifies the render table used for MenuShell's button descendants. If this value is NULL at initialization and if the value of XXXXmmmmNNNNddddeeeeffffaaaauuuullllttttFFFFoooonnnnttttLLLLiiiisssstttt is not NULL, Page 2 (printed 4/6/01) XXXXmmmmMMMMeeeennnnuuuuSSSShhhheeeellllllll((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmMMMMeeeennnnuuuuSSSShhhheeeellllllll((((3333XXXX)))) XXXXmmmmNNNNbbbbuuuuttttttttoooonnnnRRRReeeennnnddddeeeerrrrTTTTaaaabbbblllleeeeis initialized to the value of XXXXmmmmNNNNddddeeeeffffaaaauuuullllttttFFFFoooonnnnttttLLLLiiiisssstttt. If the value of XXXXmmmmNNNNddddeeeeffffaaaauuuullllttttFFFFoooonnnnttttLLLLiiiisssstttt is NULL, XXXXmmmmNNNNbbbbuuuuttttttttoooonnnnRRRReeeennnnddddeeeerrrrTTTTaaaabbbblllleeeeis initialized by looking up the parent hierarchy of the widget for an ancestor that holds the _X_m_Q_T_s_p_e_c_i_f_y_R_e_n_d_e_r_T_a_b_l_e trait. If such an ancestor is found, XXXXmmmmNNNNbbbbuuuuttttttttoooonnnnRRRReeeennnnddddeeeerrrrTTTTaaaabbbblllleeee is initialized to the XXXXmmmmBBBBUUUUTTTTTTTTOOOONNNN____RRRREEEENNNNDDDDEEEERRRR____TTTTAAAABBBBLLLLEEEE value of the ancestor widget. If no such ancestor is found, the default is implementation dependent. Refer to XXXXmmmmRRRReeeennnnddddeeeerrrrTTTTaaaabbbblllleeee(3) for more information on the creation and structure of a render table. XXXXmmmmNNNNddddeeeeffffaaaauuuullllttttFFFFoooonnnnttttLLLLiiiisssstttt Specifies a default font list for MenuShell's descendants. This resource is obsolete and exists for compatibility with earlier releases. It has been replaced by XXXXmmmmNNNNbbbbuuuuttttttttoooonnnnFFFFoooonnnnttttLLLLiiiissssttttand XXXXmmmmNNNNllllaaaabbbbeeeellllFFFFoooonnnnttttLLLLiiiisssstttt. XXXXmmmmNNNNllllaaaabbbbeeeellllFFFFoooonnnnttttLLLLiiiisssstttt Specifies the font list used for label descendants. See the XXXXmmmmNNNNllllaaaabbbbeeeellllRRRReeeennnnddddeeeerrrrTTTTaaaabbbblllleeee resource. XXXXmmmmNNNNllllaaaabbbbeeeellllRRRReeeennnnddddeeeerrrrTTTTaaaabbbblllleeee Specifies the render table used for MenuShell's label descendants (Labels and LabelGadgets). If this value is NULL at initialization and if the value of XXXXmmmmNNNNddddeeeeffffaaaauuuullllttttFFFFoooonnnnttttLLLLiiiisssstttt is not NULL, XXXXmmmmNNNNllllaaaabbbbeeeellllRRRReeeennnnddddeeeerrrrTTTTaaaabbbblllleeee is initialized to the value of XXXXmmmmNNNNddddeeeeffffaaaauuuullllttttFFFFoooonnnnttttLLLLiiiisssstttt. If the value of XXXXmmmmNNNNddddeeeeffffaaaauuuullllttttFFFFoooonnnnttttLLLLiiiisssstttt is NULL, the parent hierarchy of the widget is searched for an ancestor that holds the _X_m_Q_T_s_p_e_c_i_f_y_R_e_n_d_e_r_T_a_b_l_e trait. If such an ancestor is found, XXXXmmmmNNNNllllaaaabbbbeeeellllRRRReeeennnnddddeeeerrrrTTTTaaaabbbblllleeee is initialized to the XXXXmmmmLLLLAAAABBBBEEEELLLL____RRRREEEENNNNDDDDEEEERRRR____TTTTAAAABBBBLLLLEEEE value of the ancestor widget. If no such ancestor is found, the default is implementation dependent. Refer to XXXXmmmmRRRReeeennnnddddeeeerrrrTTTTaaaabbbblllleeee(3) for more information on the creation and structure of a render table. XXXXmmmmNNNNllllaaaayyyyoooouuuuttttDDDDiiiirrrreeeeccccttttiiiioooonnnn Specifies the direction in which the subwidgets, children of a widget, or other visual components are to be laid out. This policy will apply as the default layout policy for all descendants of this MenuShell. IIIInnnnhhhheeeerrrriiiitttteeeedddd RRRReeeessssoooouuuurrrrcccceeeessss MenuShell inherits behavior and resources from the superclasses described in the following tables. For a complete description of each resource, refer to the Page 3 (printed 4/6/01) XXXXmmmmMMMMeeeennnnuuuuSSSShhhheeeellllllll((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmMMMMeeeennnnuuuuSSSShhhheeeellllllll((((3333XXXX)))) reference page for that superclass. The programmer can set the resource values for these inherited classes to set attributes for this widget. To reference a resource by name or by class in a ....XXXXddddeeeeffffaaaauuuullllttttssss file, remove the XXXXmmmmNNNN or XXXXmmmmCCCC prefix and use the remaining letters. To specify one of the defined values for a resource in a ....XXXXddddeeeeffffaaaauuuullllttttssss file, remove the XXXXmmmm prefix and use the remaining letters (in either lowercase or uppercase, but include any underscores between words). The codes in the access column indicate if the given resource can be set at creation time (C), set by using XXXXttttSSSSeeeettttVVVVaaaalllluuuueeeessss (S), retrieved by using XXXXttttGGGGeeeettttVVVVaaaalllluuuueeeessss (G), or is not applicable (N/A). SSSShhhheeeellllllll RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt NNNNaaaammmmeeee CCCCllllaaaassssssss TTTTyyyyppppeeee DDDDeeeeffffaaaauuuulllltttt AAAAcccccccceeeessssssss XmNallowShellResize XmCAllowShellResize Boolean True G XmNcreatePopupChildProc XmCCreatePopupChildProc XtCreatePopupChildProc NULL CSG XmNgeometry XmCGeometry String NULL CSG XmNoverrideRedirect XmCOverrideRedirect Boolean True CSG XmNpopdownCallback XmCCallback XtCallbackList NULL C XmNpopupCallback XmCCallback XtCallbackList NULL C XmNsaveUnder XmCSaveUnder Boolean True CSG XmNvisual XmCVisual Visual * CopyFromParent CSG CCCCoooommmmppppoooossssiiiitttteeee RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt NNNNaaaammmmeeee CCCCllllaaaassssssss TTTTyyyyppppeeee DDDDeeeeffffaaaauuuulllltttt AAAAcccccccceeeessssssss XmNchildren XmCReadOnly WidgetList NULL G XmNinsertPosition XmCInsertPosition XtOrderProc NULL CSG XmNnumChildren XmCReadOnly Cardinal 0 G CCCCoooorrrreeee RRRReeeessssoooouuuurrrrcccceeee SSSSeeeetttt NNNNaaaammmmeeee CCCCllllaaaassssssss TTTTyyyyppppeeee DDDDeeeeffffaaaauuuulllltttt AAAAcccccccceeeessssssss XmNaccelerators XmCAccelerators XtAccelerators dynamic CSG XmNancestorSensitive XmCSensitive Boolean dynamic G XmNbackground XmCBackground Pixel dynamic CSG XmNbackgroundPixmap XmCPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG XmNborderColor XmCBorderColor Pixel XtDefaultForeground CSG XmNborderPixmap XmCPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG XmNborderWidth XmCBorderWidth Dimension 0 CSG XmNcolormap XmCColormap Colormap dynamic CG XmNdepth XmCDepth int dynamic CG XmNdestroyCallback XmCCallback XtCallbackList NULL C XmNheight XmCHeight Dimension dynamic CSG XmNinitialResourcesPersistent XmCInitialResourcesPersistent Boolean True C XmNmappedWhenManaged XmCMappedWhenManaged Boolean True CSG XmNscreen XmCScreen Screen * dynamic CG XmNsensitive XmCSensitive Boolean True CSG XmNtranslations XmCTranslations XtTranslations dynamic CSG XmNwidth XmCWidth Dimension dynamic CSG XmNx XmCPosition Position 0 CSG Page 4 (printed 4/6/01) XXXXmmmmMMMMeeeennnnuuuuSSSShhhheeeellllllll((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmMMMMeeeennnnuuuuSSSShhhheeeellllllll((((3333XXXX)))) XmNy XmCPosition Position 0 CSG TTTTrrrraaaannnnssssllllaaaattttiiiioooonnnnssss The XmMenuShell translations are described in the following list. The following key names are listed in the X standard key event translation table syntax. This format is the one used by Motif to specify the widget actions corresponding to a given key. A brief overview of the format is provided under VVVViiiirrrrttttuuuuaaaallllBBBBiiiinnnnddddiiiinnnnggggssss(3). For a complete description of the format, please refer to the X Toolkit Instrinsics Documentation. <<<<BBBBttttnnnnDDDDoooowwwwnnnn>>>>: ClearTraversal() <<<<BBBBttttnnnnUUUUpppp>>>>: MenuShellPopdownDone() AAAAccccttttiiiioooonnnn RRRRoooouuuuttttiiiinnnneeeessss The XXXXmmmmMMMMeeeennnnuuuuSSSShhhheeeellllllll action routines are ClearTraversal(): Disables keyboard traversal for the menu, enables mouse traversal, and unposts any menus posted by this menu. MenuShellPopdownDone(): Unposts the menu hierarchy and, when the shell's keyboard focus policy is XXXXmmmmEEEEXXXXPPPPLLLLIIIICCCCIIIITTTT, restores focus to the widget that had the focus before the menu system was entered. MenuShellPopdownOne(): In a top-level Pulldown MenuPane from a MenuBar, this action unposts the menu, disarms the MenuBar CascadeButton and the MenuBar, and, when the shell's keyboard focus policy is XXXXmmmmEEEEXXXXPPPPLLLLIIIICCCCIIIITTTT, restores keyboard focus to the widget that had the focus before the MenuBar was entered. In other Pulldown MenuPanes, this action unposts the menu. In a Popup MenuPane, this action unposts the menu, and, when the shell's keyboard focus policy is XXXXmmmmEEEEXXXXPPPPLLLLIIIICCCCIIIITTTT, restores keyboard focus to the widget from which the menu was posted. VVVViiiirrrrttttuuuuaaaallll BBBBiiiinnnnddddiiiinnnnggggssss The bindings for virtual keys are vendor specific. For information about bindings for virtual buttons and keys, see VVVViiiirrrrttttuuuuaaaallllBBBBiiiinnnnddddiiiinnnnggggssss(3). Page 5 (printed 4/6/01) XXXXmmmmMMMMeeeennnnuuuuSSSShhhheeeellllllll((((3333XXXX)))) UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV XXXXmmmmMMMMeeeennnnuuuuSSSShhhheeeellllllll((((3333XXXX)))) RRRREEEELLLLAAAATTTTEEEEDDDD CCCCoooommmmppppoooossssiiiitttteeee(3), CCCCoooorrrreeee(3), OOOOvvvveeeerrrrrrrriiiiddddeeeeSSSShhhheeeellllllll(3), SSSShhhheeeellllllll(3), XXXXmmmmCCCCrrrreeeeaaaatttteeeeMMMMeeeennnnuuuuSSSShhhheeeellllllll(3), XXXXmmmmCCCCrrrreeeeaaaatttteeeePPPPooooppppuuuuppppMMMMeeeennnnuuuu(3), XXXXmmmmCCCCrrrreeeeaaaatttteeeePPPPuuuullllllllddddoooowwwwnnnnMMMMeeeennnnuuuu(3), and XXXXmmmmRRRRoooowwwwCCCCoooolllluuuummmmnnnn(3). Page 6 (printed 4/6/01)